/*
 *
 * *******************************************************************
 *   @项目名称: BHex Android
 *   @文件名称: ResponseListener.java
 *   @Date: 11/29/18 3:21 PM
 *   @Author: chenjun
 *   @Copyright（C）: 2018 BlueHelix Inc.   All rights reserved.
 *   注意：本内容仅限于内部传阅，禁止外泄以及用于其他的商业目的.
 *  *******************************************************************
 *
 */

package io.bhex.baselib.network.response;

import android.os.Handler;

public interface ResponseListener<T> {
    /**
     * 执行前被调用
     */
    void onBefore();

    /**
     * 又返回结果后的回调，不管成功失败
     * 在{@link #onSuccess(T)} {@link #onError(Throwable)} 之前调用
     */
    void onFinish();

    void onSuccess(T response);

    /**
     * @param error
     */
    void onError(Throwable error);

    /**
     * 返回结果后的回调，不管成功失败
     * 在{@link #onSuccess(Object)} {@link #onError(Throwable)} 之后回调
     */
    void onAfter();

    T parserResponse(Handler uiHandler, String response, Class<T> clazz);
}
